package com.clhbolg.service;

import com.clhbolg.model.dto.UserAdminDTO;
import com.clhbolg.model.dto.UserAreaDTO;
import com.clhbolg.model.dto.UserDetailsDTO;
import com.clhbolg.model.vo.request.ConditionVO;
import com.clhbolg.model.vo.request.UserInfoVO;
import com.clhbolg.model.vo.request.UserLoginVo;
import com.clhbolg.model.vo.request.UserVO;
import com.ruoyi.common.core.domain.PageQuery;
import com.ruoyi.common.core.page.TableDataInfo;

import java.util.List;

/**
 * 【请填写功能名称】Service接口
 *
 * @author cailinhu
 * @date 2023-02-08
 */
public interface IUserAuthService {

    /**
     * 登录博客用户
     * @param vo
     * @return
     */
    UserDetailsDTO loginBlogUser(UserLoginVo vo);



    /**
     * 查询用户列表信息，并封装成DTO
     * @param vo
     * @param pageQuery
     * @return
     */
    TableDataInfo<UserAdminDTO> listUsers(ConditionVO vo, PageQuery pageQuery);

    /**
     * 新用户注册
     * @param vo
     */
    void register(UserVO vo);

    /**
     * 邮箱验证码发送
     * @param username
     */
    void sendCode(String username);

    /**
     * 多数据源环境下使用事务
     * @param userInfoVO
     */
    void updateUserInfo(UserInfoVO userInfoVO);

    List<UserAreaDTO> listUserAreas(ConditionVO conditionVO);
}
